控制反转:一种软件设计原则,把程序的“控制流程/对象创建/调用时机”从应用代码转交给框架、容器或运行时机制来负责;应用代码更多是“被调用”的一方。常见实现方式之一是依赖注入(Dependency Injection)。
/ɪnˈvɜːrʒən əv kənˈtroʊl/
Our app uses inversion of control, so the framework calls our code.
我们的应用使用控制反转,所以由框架来调用我们的代码。
By applying inversion of control through a container, we can swap implementations for testing without changing business logic.
通过容器实现控制反转,我们可以在不改业务逻辑的情况下替换实现以便测试。
“Inversion”意为“倒置、反转”,“control”意为“控制”。该术语在软件工程语境中用于描述:传统上由应用程序自己掌控的流程(例如创建对象、决定调用顺序)被“反转”交给框架或容器管理;开发者主要提供可插拔的组件与回调点。